package com.ayu.envdemo.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import org.springframework.data.mongodb.core.mapping.FieldType;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author : leilei
 * @date : 10:23 2020/2/16
 * @desc :student 实体类
 */
@Data
@Document(collection = "http_device_monitor")  //指定要对应的文档名(表名）
@AllArgsConstructor
@NoArgsConstructor
@Builder
@JsonIgnoreProperties(ignoreUnknown = true)
public class DeviceMonitorMongodb {

    private String id;

    /**
     * 标段
     */
    private String section;


    /**
     * 隧道首字缩写
     */
    private String tunnel;


    /**
     * 方向缩写
     */
    private String directionInfo;

    /**
     * 设备地址
     */
    private String deviceAddress;

    /**
     * 设备SN
     * 调整如下: 标段_隧道首字缩写_方向缩写_设备地址
     */
    @ApiModelProperty("设备SN")
    private String deviceSn;
    /**
     * 设备名称
     */
    @ApiModelProperty("设备名称")
    private String sensorName;
    /**
     * 标识符
     */
    @ApiModelProperty("标识符")
    private String symbols;
    /**
     * 感知数据
     */
    @ApiModelProperty("感知数据")
    private String sensorValue;

    //统计使用
    @Field(targetType = FieldType.DECIMAL128)
    private BigDecimal sensorValueV2;
    /**
     * 感知数据（带单位）
     */
    @ApiModelProperty("感知数据（带单位）")
    private String unitValue;
    /**
     * 报警类型
     */
    @ApiModelProperty("报警类型")
    private String alarmType;
    @Field(targetType = FieldType.INT32)
    //用于报警数量的展示
    private Integer alarmTypeV2;
    /**
     * 低报警门线值
     */
    @ApiModelProperty("低报警门线值")
    private String lowAlarm;
    /**
     * 高报警门线值
     */
    @ApiModelProperty("高报警门线值")
    private String highAlarm;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;


}
